package com.saint.farmshop.Mapper;

import com.saint.farmshop.Entity.Production;
import com.saint.farmshop.Entity.ProductionDetail;
import com.saint.farmshop.Utils.Result;
import com.sun.org.apache.xpath.internal.operations.Bool;

import java.util.List;

/**
 * 产品映射器
 *
 * @author Saint
 * @date 2022/05/23
 */
public interface ProductionMapper {

    /**
     * 获取对应分类下的所有商品
     * @param typeId,pageIndex,pageSize 商品类型id
     * @param pageSize 当前页数
     * @param pageIndex 分页大小
     * @return 返回对应商品列表
     */
    List<Production> getProductionByType(String typeId, Integer pageIndex, Integer pageSize);

    /**
     * 获取个人店铺下面的商品列表
     * @param openId 用户openId
     * @param pageIndex 当前页数
     * @param pageSize 分页大小
     * @return 返回对应商品列表
     */
    List<Production> getProductionByOpenId(String openId, Integer pageIndex, Integer pageSize);

    /**
     * 发布商品
     * @param productionDetail 要发布的商品
     * @return 返回执行结果
     */
    Boolean releaseProduction(ProductionDetail productionDetail);

    /**
     * 删除商品
     * @param productionDetail 要删除的商品
     * @return 返回执行结果
     */
    Boolean deleteProduction(ProductionDetail productionDetail);

    /**
     * 通过id获取商品详情
     * @param id
     * @return 返回商品详情
     */
    ProductionDetail getProductionDetailById(String id);

    /**
     * 获取首页商品列表
     * @param pageIndex 页码
     * @param pageSize 页面大小
     * @return 返回商品列表
     */
    List<Production> getProductionList(Integer pageIndex,Integer pageSize);

    /**
     * 修改商品状态
     * @param productionId 商品id
     * @return 成功返回true
     */
    boolean updateProductionStatus(String productionId);
}
